[Linux实用命令] 您所在的位置:网站首页 磁盘阵列 raid [Linux实用命令]

[Linux实用命令]

2023-04-16 18:00| 来源: 网络整理| 查看: 265

这篇文章介绍几种常用的磁盘阵列技术(Raid0、Raid1、Raid4、Raid5、Raid10、Raid01),演示如何在CentOS7环境下使用mdadm命令去创建和维护磁盘阵列;RAID又称“廉价磁盘冗余阵列”,可以使用硬件和软件两种方式来实现,硬件RAID可以参考购买硬件时附带的参考手册,设置方法与软件RAID有差异;现如今软件RAID大多用作研究和熟悉RAID的工作方式。

Raid有"廉价磁盘冗余阵列"的意思,就是利用多块廉价的硬盘组成磁盘组,让数据分部储存在这些硬盘里面,从而达到读取和写入加速的目的;也可以用作数据的冗余,当某块硬盘损毁后,其他硬盘可以通过冗余数据计算出损坏磁盘的数据,这样就提高了数据储存的安全性。

Raid0数据储存方法如下(假设有两块硬盘D1、D2):

特点:数据被并行写入每个磁盘,每个磁盘都保存了完整数据的一部分,读取也采用并行方式,磁盘数量越多,读取和写入速度越快。因为没有冗余,一个硬盘坏掉全部数据丢失。至少两块硬盘才能组成Raid0阵列。

容量:所有硬盘之和。

Raid1数据储存方法如下(假设有两块硬盘D1、D2):

特点:有数据冗余,可靠性强,D1、D2被写入相同的数据,其中D2可以作为D1的完整备份。读取时,从两块硬盘上并行读取,写入慢,读取快。任何一块硬盘坏掉不会丢失数据,至少两块硬盘并且两块硬盘大小相等才能组成Raid1阵列。

容量:所有硬盘容量之和的一半(一半写数据,一半用来做备份)。

Raid4数据储存方法如下(假设有三块硬盘D1、D2、D3):

特点:有数据冗余校验,可靠性强。其中任何一块硬盘坏掉都不会引起数据丢失,D1丢失时,D3根据校验和以及D2的数据进行逆运算,计算出D1的数据。但当写入大量数据时校验盘D3会是一个数据瓶颈,导致写入慢。只有当两块磁盘同时丢失时,数据才无法恢复。至少三块硬盘并且磁盘大小应该相等才能组成Raid4阵列(不常用)。

容量:所有硬盘容量之和减去其中一块硬盘的容量。

Raid5数据储存方法如下(假设有三块硬盘D1、D2、D3):

特点:采用奇偶校验,可靠性强,磁盘校验和被散列到不同的磁盘里面,增加了读写速率。只有当两块磁盘同时丢失时,数据才无法恢复,至少三块硬盘并且硬盘大小应该相等才能组成Raid5阵列。

容量:所有硬盘容量之和减去其中一块硬盘的容量,被减去的容量被分配到三块硬盘的不同区域用来存放数据校验信息。

Raid10(Raid1+Raid0)是现在比较常用的一种磁盘阵列级别,它的容错好,读写数据效率较高,但经费相对也较高。

Raid10数据储存方法如下(假设有四块硬盘D1、D2、D3、D4):

特点:备份和并发式存取数据,可靠性强。D1、D2组成一个阵列Raid1,其中D1是数据盘,D2是备份盘;D3、D4也组成一个Raid1,其中D3是数据盘,D4是备份盘;在这个基础上将D1、D2作为一个整体,将D3、D4也作为一个整体,这两个整体之间再组成一个Raid0阵列。这样不仅仅读取数据会非常快,并发写入的速度也会随着磁盘的增多而变快。至少四块硬盘并且每块硬盘大小应该相等才能组成Raid10阵列。

容量:所有硬盘容量之和的一半(一半写数据,一半用来备份数据)。

Raid01数据储存方法如下(假设有四块硬盘D1、D2、D3、D4):

特点:D1、D2组成一个阵列Raid0,D3、D4也组成一个阵列Raid0,D1、D2和D3、D4再组成一个Raid1。D1和D2作为数据盘阵列,D3和D4作为数据备份阵列,这种方式并不常用,至少四块硬盘并且每块硬盘大小应该相等才能组成Raid01阵列。

容量:所有硬盘容量之和的一半。

这一部分通过Linux上的mdadm命令来实现Raid10磁盘阵列。

实验环境为一台安装了5块硬盘的计算机,操作系统是CentOS7,除系统所在硬盘(/dev/sda)外,其余四块20G的硬盘盘符分别为(/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde);

主要用到的命令:mdadm;

CentOS7中mdadm默认已安装,如果没有安装,可以使用yum在线安装,如下:

到这里,实验的准备工作完成。

新创建的磁盘阵列默认是不能开机自启动的,需要手动创建一个配置文件,让系统在启动的时候自动启动Raid(经过测试,CentOS7并不需要创建这个配置文件,如果重启后磁盘阵列没有随机启动,请使用下面的方法配置一次):

可以在创建RAID的时候指定有几块冗余磁盘,当工作磁盘出现故障的时候,冗余磁盘自动启动,顶替出现故障的磁盘继续工作,请看下面的实例:

下面手动将一块磁盘标记为故障,看看冗余盘是否起作用:

假如/dev/sdc经过测试后发现没有问题,想要重新加入md0使用,可以在系统重启后,使用"mdadm /dev/md0 -a /dev/sdc"命令将它重新(添加)启用。

如果以后,想要加入一块新硬盘到这个raid10里作为备份盘,这块新硬盘需要和其他硬盘(或分区)保持相同的大小,然后使用下面的命令添加:

要想彻底清除RAID以及数据,请使用下面的方法:

RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地说就是将N块硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单块大容量的硬盘使用,其特色是N台硬盘同时读取速度加快及提供容错性(Fault Tolerant),所以RAID是当成平时主要访问数据的Storage不是Backup Solution

• RAID 0又称为Stripe或Striping,中文译为集带工作方式,有时也可以理解为“拼凑”

• 它是将要存取的数据以条带状形式尽量平均分配到多个硬盘上,读写时多个硬盘同时进行读写,从而提高数据的读写速度。RAID 0另一目的是获得更大的“单个”磁盘容量

• 硬盘数量:最少 2 个

A和B分别为两块硬盘,C为实行了Raid0之后的硬盘

A和B都为读写速度为300M的1T的硬盘,C为实行了Raid0以后的硬盘。它的读写速度可以达到600M,容量为2T。但缺点是一旦A或B损坏,C里所有数据丢失

因为在计算机看来它是一整块硬盘,在写的时候也是按照随机把数据写入A,B的。比如一个数据123456,把135写入了A,246写入了B,如果A坏了,B里的数据也没了意义

• 又称为Mirror或Mirroring,中文译为镜像方式

• 这种工作方式的出现完全是为了数据安全考虑的,它是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上或硬盘的不同地方(镜像)。当读取数据时,系统先从RAID 1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断

• 由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高

• 硬盘数量:最少 2 个

A和B分别为两块硬盘,C为实行了Raid1之后的硬盘

A和B都为读写速度为300M的1T的硬盘,也就是A里面写什么B里面就写什么。B为A的备份。

读写速度为300M,容量为1T

• 先做Raid1,再做Raid0

• 硬盘数量:最少 4个

A,B,C,D分别为四块硬盘,E为实行了Raid10之后的硬盘

ABCD都为读写速度为300M的1T的硬盘,Raid10为AB和CD为实行了Raid1以后实行Raid0以后的硬盘。这样读写速度为600M,容量为2T

• Raid5是一种存储性能、数据安全和存储成本兼顾的存储解决方案,也是目前应用最广泛的RAID技术

• 各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验 (异或运算),校验数据平均分布在每块硬盘上

• 以n块硬盘构建的RAID 5阵列可以有2/3块硬盘的容量,存储空间利用率非常高

• RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID 5的任何一块硬盘上的数据丢失,均可以通过校验数据推算出来

• 硬盘数量:最少 3个

一共3T的硬盘,最后的容量可能会达到2T~2.6T左右。不怕硬盘坏一块,坏一块还能通过校验和推算出来数据。但坏两块及两块以上数据就没有了意义

• 先做Raid5,再做Raid0

• 硬盘数量:最少 6个

• 一般的中高档服务器多使用硬件RAID控制器来实现Hardware RAID,但是由于硬件RAID控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得软件RAID的解决方法得到人们的重视

• SoftWare Raid即软件磁盘阵列,软件RAID使您可以将两个或多个块设备(通常是磁盘区)组合为单个 RAID 设备(/dev/mdX)

• 例如:假定有三个空分区:hda3、hdb3 和 hdc3。使用软件 RAID管理工具mdadm就能将这些分区组合起来

mdadm工具是一个管理软件RAID的独立程序,它能完成所有的软RAID管理功能

mdadm常用选项

• -A 阵列设备名, --assemble:加入一个以前定义的阵列

• -C 阵列设备名, --create:创建一个新的阵列

• -D 阵列设备名, --detail:显示 md device 的详细信息

• -a yes :自动创建md阵列文件

• -l, --level=:设定 raid level

• -s, --scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息

• -n, --raid-devices=:指定阵列中可用 device 数目,这个数目只能由 --grow 修改

-x, --spare-devices=:指定初始阵列的富余device 数目

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.outofmemory.cn/yw/8457907.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有